columviewlayout: Skip children when we should
authorMatthias Clasen <mclasen@redhat.com>
Fri, 5 Jun 2020 12:44:23 +0000 (08:44 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 5 Jun 2020 12:44:23 +0000 (08:44 -0400)
Every layout manager should call gtk_widget_should_layout
on their children before measuring or allocating them.
So do it here too.

gtk/gtkcolumnviewlayout.c

index 05f218c52503d96e4b54aa78d9361f1b4897fe59..44d99df6739fd126a4e9d8c82d9764a37e1f0227 100644 (file)
@@ -57,6 +57,9 @@ gtk_column_view_layout_measure_along (GtkColumnViewLayout *self,
       int child_min_baseline = -1;
       int child_nat_baseline = -1;
 
+      if (!gtk_widget_should_layout (child))
+        continue;
+
       gtk_widget_measure (child, orientation, for_size,
                           &child_min, &child_nat,
                           &child_min_baseline, &child_nat_baseline);
@@ -117,6 +120,9 @@ gtk_column_view_layout_allocate (GtkLayoutManager *layout_manager,
       GtkColumnViewColumn *column;
       int col_x, col_width;
 
+      if (!gtk_widget_should_layout (child))
+        continue;
+
       if (GTK_IS_COLUMN_VIEW_CELL (child))
         {
           column = gtk_column_view_cell_get_column (GTK_COLUMN_VIEW_CELL (child));